#include "same_library_demo.hpp"
#include "lib1.hpp"
#include "lib2.hpp"
#include "lib2_external.hpp"
// #include "lib1_public.hpp"
// #include "lib2_public.hpp"
#include "invoke_lib1.hpp"
#include "invoke_lib2.hpp"

namespace test {

same_library_demo::same_library_demo(/* args */) {}

same_library_demo::~same_library_demo() {}

void same_library_demo::invoke_lib1() {
  using namespace lib1;
  lib1_library().test();
}
void same_library_demo::invoke_lib2() {
  using namespace lib2;
  lib2_library().invoke_internal();
  lib2_external().invoke_lib1();
}

void test_same_library_demo() {
  same_library_demo demo;
  demo.invoke_lib1();
  demo.invoke_lib2();

  test_invoke_lib1();
  test_invoke_lib2();
}

} // namespace test